<?php
/**
 * Lớp Model của Gallery
 * @author Mr.UBKey
 *
 */
#[Table('gallery')]
#[PrimaryKey('id')]
class Areas_Gallery_Models_Gallery extends XPHP_Model
{
    public $id;
    #[Label('Tên')]
    #[Required(message = 'Tên không được để trống')]
    #[MaxLength(255, message = 'Tên có tối đa 255 kí tự')]
    public $name;
    #[Label('Mô tả')]
    public $description;
    #[Label('Ảnh đại diện')]
    #[Required(message = 'Ảnh đại diện không được để trống')]
    public $image;
    
    /**
     * Kiểm tra xem một thư viện ảnh đã có trong hệ thống hay chưa ?
     */
    public function exists($options = array())
    {
        foreach ($options as $field => $value)
            $this->db->where($field, $value);
            
        $result = $this->db->get()->result();
        
        return count($result) > 0;
    }
    
    /**
     * Thêm một thư viện vào hệ thống
     */
    public function insert()
    {
        $data = array();
        $data['name'] = $this->name;
        $data['description'] = $this->description;
        $data['image'] = $this->image;
        return $this->db->insert($data);
    }
    
    public function update()
    {
        $data = array();
        $data['name'] = $this->name;
        $data['description'] = $this->description;
        $data['image'] = $this->image;
        return $this->db->where('id', $this->id)->update($data);
    }
    
    public function delete()
    {
        return $this->db->where('id', $this->id)->delete();
    }
    
    /**
     * Lấy ra danh sách các thư viện ảnh
     */
    public function getGalleries()
    {
        return $this->db->get()->result();
    }
}